package com.elitel.frame.base.service;

import java.util.List;

import com.elitel.frame.main.entity.CfgExtmaster;
import com.elitel.frame.main.entity.SysPrjservice;
import com.elitel.frame.main.entity.ext.CfgExtmasterExt;
import com.elitel.frame.main.entity.vo.KeyValueModelVo;
import com.elitel.frame.main.entity.vo.ZTreeDataModelVo;

/**
 * @Description 主从表配置服务接口
 * @author guoyanfei
 */
public interface CfgExtmasterService {
	/**
	 * @Description 获取所有数据库对应的主从表服务信息(树形数据结构)
	 * @return tree集合
	 * @author guoyanfei
	 */
	List<ZTreeDataModelVo> getmasterDetailTree();
	
	/**
	 * @Description 查询guid是否存在
	 * @param guid
	 * @return boolean
	 * @author guoyanfei
	 */
	boolean isExistGuid(String guid);
	
	/**
	 * @Description 新增主从表中主表服务信息
	 * @param cfgExtmaster
	 * @return 新增条数
	 * @author guoyanfei
	 */
	Integer insertMasterdata(CfgExtmaster cfgExtmaster);
	
	/**
	 * @description 添加主表信息和工程服务表信息
	 * @param cfgExtmasterExt
	 * @return
	 */
	Integer insertMasterandSysprj(CfgExtmasterExt cfgExtmasterExt);
	
	/**
	 * @Description 修改主从表中主表服务信息
	 * @param cfgExtmaster
	 * @return 修改条数
	 * @author guoyanfei
	 */
	Integer updateMasterdata(CfgExtmaster cfgExtmaster);
	
	/**
	 * @Description 删除主从表配置服务
	 * @param guid
	 * @return
	 */
	Integer deleteMasterdata(String guid);
	
	/**
	 * @Description 通过guid查询主表信息
	 * @param guid
	 * @return
	 */
	CfgExtmaster getCfgExtmasterByguid(String guid);
	
	/**
	 * @desciption 查询所有主表信息
	 * @author guoyanfei
	 * @return
	 */
	List<CfgExtmaster> selectAllExtMaster();
	
	/**
	 * show 通过表标识(dtConfigId)查询字段keyvalue列表
	 * <p>show dtConfigId(包括数据表和视图)<br>
	 * @param dtConfigId(表或视图标识)
	 * @return keyValueModelVo集合
	 * @author guoyanfei
	 * @date 2017/11/07
	 */
	List<KeyValueModelVo> selectFieldValue(String dtConfigId);
	
	/**
	 * @description 通过服务ID查询数据库类型
	 * @param serviceId(服务ID)
	 * @return 数据库类型
	 * @author guoyanfei
	 * @date 2017/12/4
	 */
	String getdbtypeByserviceId(String serviceId);
	
	/**
	 * <pre>deleteMasterdataByPrjservice(通过服务中间表删除服务)   
	 * @author：FanWenquan    
	 * @date：2017年12月7日 上午10:04:39   
	 * @param prjservice</pre>
	 */
	void deleteMasterdataByPrjservice(SysPrjservice prjservice);
	
}
